Data compression occurs in a number of contexts. It is very commonly used in communications and computer networking to store, transmit, and reproduce information efficiently. It finds particular application in the encoding of images, audio and video. Video presents a significant challenge to data compression because of the large amount of data required for each video frame and the speed with which encoding and decoding often needs to occur.
The Audio and Video Coding Standard (AVS) Workgroup specifies audio coding, video coding, and transport protocols for use in China For the purpose of this document, AVS refers to the first version of the video coding specification defined by the AVS Workgroup, while AVS2 refers to the second version of the video coding specification currently under development by the AVS Workgroup. As used herein, the term “coding” encompasses both encoding and decoding.
Many video coding standards, including AVS and AVS2, use block-based coding processes. In these processes, the image or frame is divided into blocks, typically 4×4 or 8×8, although non-square blocks may be used in some cases, and the blocks are spectrally transformed into coefficients, quantized, and entropy encoded. In many cases, the data being transformed is not the actual pixel data, but is residual data following a prediction operation. Predictions can be intra-frame, i.e. block-to-block within the frame/image, or inter-frame, i.e. between frames (also called motion prediction).
To compress data, the coding of the quantized transform coefficients is designed to take advantage of characteristics of the transform to improve compression. In the case of AVS, the coefficients are coded using a sequence of quadruple: level, run, sign, end-of-block (EOB) flag. The coding is in a reverse zig-zag direction starting from the last non-zero coefficient in the zig-zag scan order in a transform block (hence the requirement for the EOB flag).
The level-minus-one and run data is binarized using unary binarization and the bins are then coded using context-based entropy coding. AVS specifically uses arithmetic coding for the transform coefficient data.
There are some limitations of the existing coding scheme for AVS. For example, straightforward extension of the existing AVS coding scheme to larger block sizes might not be efficient. Furthermore, side information like the intra prediction information is not used in coding the residual blocks after prediction.
and in which like reference numerals are used in different figures to denote like features.